1. Field of the Invention
The present invention relates generally to the field of image processing, and more particularly to an apparatus for combining texel images to generate graphics images.
2. Description of Background Art
Recent advances in computer performance has enabled graphics systems to provide more realistic graphical images using personal computers and home video game computers. In such graphics systems, some procedure must be implemented to "render" or draw graphics primitives to the screen of the system. "Graphics primitives" are a basic component of a graphics picture, such as a polygon, e.g., a triangle, or a vector. All graphics pictures are formed with combinations of these graphic primitives. Many procedures may be utilized to perform graphics primitives rendering.
Conventional graphics systems perform these graphics rendering procedures using a frame buffer. A frame buffer generally comprises a plurality of computer memory chips that store information concerning pixel activation on the system's display screen. Generally, the frame buffer includes all of the graphics data information that will be written onto the screen.
Early graphics systems displayed images representing objects having extremely smooth surfaces. That is, textures, bumps, scratches, or other surface features were not modeled. In order to improve the quality of the image, texture mapping was developed to model the complexity of real world surface images. In general, texture mapping is the mapping of an image or function onto a surface in three dimensions. Texture mapping is a relatively efficient technique for creating the appearance of a complex image without the tedium and computational cost of rendering three dimensional detail that might be found on a surface of an object.
Many parameters have been texture mapped in conventional systems. Some of these parameters include surface color, specular reflection, normal vector perturbation, specularity, transparency, diffuse reflections, and shadows. In texture mapping, a source image known as the "texture" is mapped onto a surface in three dimensional space. The three dimensional surface is then mapped to the destination image, that is typically a graphics display screen. Examples of the texture of an object include the gravel on a highway or scuff marks on a wooden surface.
In conventional systems a texture is frequently combined with either a constant color or an iterated color. That is, in conventional systems multiple texture colors are not combined in a single execution pass. Examples of the types of combinations or functions available in conventional systems between the texture and the constant color or the iterated color include a multiply function, an addition function, and a subtraction function. In some conventional systems each of these functions are performed in a separate chip, in other conventional systems these functions are performed in parallel using multiple chips. In such conventional systems, having chips capable of performing a single function is an inefficient use of space. In addition, having functions performed in parallel, e.g., trilinear mipmapping, is expensive because memory is not used efficiently. For example, in order to implement trilinear mipmapping in a conventional system using parallel processing, a single mipmap is stored multiple times, i.e., once in each chip. Trilinear mipmapping is described in greater detail below.
What is needed is a graphical system that (1) permits texture images to be combined with other texture images and (2) is scalable, that is, multiple texture combine units can be serially coupled such that many texture images can be combined in a single execution pass, where each texture combine unit is capable of creating a new texture image by combining two input texture images.